<template>
    <div class="todo-container">
        <div class="todo-wrap">
            <MyHeader @addTodo="addTodo"></MyHeader>
            <MyList 
            :todoList="todoList" 
            :checkTodo="checkTodo"
            :delTodo="delTodo"></MyList>
            <MyFooter 
            :todoList="todoList" 
            :checkAllTodo="checkAllTodo"
            :clearAllTodo="clearAllTodo"></MyFooter>
        </div>
    </div>
</template>

<script>
// 引入组件
import MyHeader from './components/MyHeader.vue';
import MyList from './components/MyList.vue';
import MyFooter from './components/MyFooter.vue';

export default {
    name:'App',
    components:{
        MyHeader,
        MyList,
        MyFooter
    },
    data(){
        return {
            todoList:[
                {id:'001',title:'学习',isDone:true},
                {id:'002',title:'吃饭',isDone:false},
                {id:'003',title:'敲代码',isDone:true}
            ]
        }
    },
    methods:{
        // 新增
        addTodo(todoObj){
            this.todoList.unshift(todoObj)
        },
       // 勾选或取消一个todo
      checkTodo(id){
            // console.log(id);
            this.todoList.forEach((todoObj)=>{
                if(todoObj.id === id){
                    todoObj.isDone = !todoObj.isDone
                }
            })
        },
        // 删除一个todo
        delTodo(id){
            // console.log(id);
            this.todoList = this.todoList.filter((todoObj)=>{
                return todoObj.id !== id
            })
        },
        // 全选或取消全选
        checkAllTodo(done) {
            this.todoList.forEach((todoObj)=>{
                todoObj.isDone = done
            })
        },
        //清除已完成
        clearAllTodo(){
            this.todoList = this.todoList.filter((todoObj)=>{
                return !todoObj.isDone
            })
        }
    }
}
</script>

<style >
    /*base*/
body {
  background: #fff;
}

.btn {
  display: inline-block;
  padding: 4px 12px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  border-radius: 4px;
}

.btn-danger {
  color: #fff;
  background-color: #da4f49;
  border: 1px solid #bd362f;
}

.btn-danger:hover {
  color: #fff;
  background-color: #bd362f;
}

.btn:focus {
  outline: none;
}

.todo-container {
  width: 600px;
  margin: 0 auto;
}
.todo-container .todo-wrap {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
}






</style>